home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / letters / serie / serienbr.sty < prev   
Text File  |  1994-04-06  |  8KB  |  320 lines

  1. %Serienbrief-Style 0.53ß
  2.  
  3. \typeout{Serienbriefstyle 0.53ß vom 6.3.94 von Gundolf Frank}
  4.  
  5. %Hier die Adressendatei ändern:
  6. \def\adressendateiname{brief.adr}
  7.  
  8. \def\greatings{}
  9.  
  10. \def\optional#1#2[#3]{%
  11.   \escapechar=-1
  12.   \if\def#1%
  13.     \edef#2{\futurelet\noexpand\next
  14.             \csname\string#2@@body\endcsname}
  15.     \expandafter\edef\csname\string#2@@body\endcsname{%
  16.       \noexpand\if[\noexpand\next
  17.                  \def\noexpand\next{\csname\string#2@@do\endcsname}%
  18.                  \noexpand
  19.                 \else
  20.                  \def\noexpand\next
  21.                    {\csname\string#2@@do\endcsname
  22.                     [\expandafter
  23.                      \noexpand\csname\string#2@@default\endcsname]}%
  24.                  \noexpand
  25.                \fi
  26.       \noexpand\next}%
  27.     \expandafter\noexpand\expandafter
  28.     \def\csname\string#2@@default\endcsname{#3}%
  29.     \edef\optional@continue{
  30.       \expandafter\noexpand\expandafter
  31.       \def\csname\string#2@@do\endcsname[####1]}%
  32.     \escapechar="5C\relax
  33.     \let\next=\optional@continue
  34.    \else
  35.     \escape="5C
  36.     \errmessage{\string\def fehlt nach \string\optional}
  37.     \let\next=\relax
  38.   \fi
  39.   \next}
  40.  
  41. \long\def\text#1{\def\serientext{#1}}
  42.  
  43. \optional\def\serienbrief[{}]#2{
  44.    \def\serienbriefuebergabe{#1}
  45.    \def\zwparameter{#2}
  46.    \ifx\zwparameter\empty
  47.       \errhelp{Bei \serienbrief[Optionen]{suchkriterium} mu\ss{} ein Suchkriterium angegeben werden.}
  48.       \errmessage{Es wurde kein Suchkriterium angegeben!}
  49.    \fi
  50.    \openin7=\adressendateiname
  51.    \loop
  52.      \def\ende{}
  53.      \def\zeile{}
  54.      \def\test{---}
  55.      \endlinechar=-1
  56.      \read7to\zeile
  57.      \ifx\zeile\test
  58.        \read7to\nachname
  59.        \read7to\vorname
  60.        \read7to\firma
  61.        \read7to\abteilung
  62.        \read7to\strasse
  63.        \read7to\ort
  64.        \read7to\tel
  65.        \read7to\cosename
  66.        \ifx\cosename\empty
  67.          \def\cosename{\vorname}
  68.        \fi
  69.        \read7to\geburtsdatum
  70.        \read7to\paraer
  71.        \read7to\parazw
  72.        \read7to\geschlecht
  73.        \read7to\kontakt
  74.        \endlinechar=`\^^M
  75.        \ifx#1\empty
  76.          \ifx\zwparameter\nachname
  77.             \def\ende{gleich}
  78.          \fi
  79.        \fi
  80.        \def\bedingung{Nachname}
  81.        \ifx\serienbriefuebergabe\bedingung
  82.          \ifx\zwparameter\nachname
  83.             \def\ende{gleich}
  84.          \fi
  85.        \fi
  86.        \def\bedingung{Vorname}
  87.        \ifx\serienbriefuebergabe\bedingung
  88.          \ifx\zwparameter\vorname
  89.             \def\ende{gleich}
  90.          \fi
  91.        \fi
  92.        \def\bedingung{Firma}
  93.        \ifx\serienbriefuebergabe\bedingung
  94.          \ifx\zwparameter\firma
  95.             \def\ende{gleich}
  96.          \fi
  97.        \fi
  98.        \def\bedingung{Abteilung}
  99.        \ifx\serienbriefuebergabe\bedingung
  100.          \ifx\zwparameter\abteilung
  101.             \def\ende{gleich}
  102.          \fi
  103.        \fi
  104.        \def\bedingung{Strasse}
  105.        \ifx\serienbriefuebergabe\bedingung
  106.          \ifx\zwparameter\strasse
  107.             \def\ende{gleich}
  108.          \fi
  109.        \fi
  110.        \def\bedingung{Ort}
  111.        \ifx\serienbriefuebergabe\bedingung
  112.          \ifx\zwparameter\ort
  113.             \def\ende{gleich}
  114.          \fi
  115.        \fi
  116.        \def\bedingung{Telefonnummer}
  117.        \ifx\serienbriefuebergabe\bedingung%
  118.          \ifx\zwparameter\tel
  119.             \def\ende{gleich}
  120.          \fi
  121.        \fi
  122.        \def\bedingung{Faxnummer}
  123.        \ifx\serienbriefuebergabe\bedingung
  124.          \ifx\zwparameter\fax
  125.             \def\ende{gleich}
  126.          \fi
  127.        \fi
  128.        \def\bedingung{E-Mail}
  129.        \ifx\serienbriefuebergabe\bedingung
  130.          \ifx\zwparameter\email
  131.             \def\ende{gleich}
  132.          \fi
  133.        \fi
  134.        \def\bedingung{Geburtsdatum}
  135.        \ifx\serienbriefuebergabe\bedingung
  136.          \ifx\zwparameter\Geburtsdatum
  137.             \def\ende{gleich}
  138.          \fi
  139.        \fi
  140.        \def\bedingung{Cosename}
  141.        \ifx\serienbriefuebergabe\bedingung
  142.          \ifx\zwparameter\cosename
  143.             \def\ende{gleich}
  144.          \fi
  145.        \fi
  146.        \def\bedingung{Zusatz 1}
  147.        \ifx\serienbriefuebergabe\bedingung%
  148.          \ifx\zwparameter\paraer%
  149.             \def\ende{gleich}
  150.          \fi
  151.        \fi
  152.        \def\bedingung{Zusatz 2}
  153.        \ifx\serienbriefuebergabe\bedingung
  154.          \ifx\zwparameter\parazw
  155.             \def\ende{gleich}
  156.          \fi
  157.        \fi
  158.        \def\bedingung{Geschlecht}
  159.        \ifx\serienbriefuebergabe\bedingung
  160.          \ifx\zwparameter\geschlecht
  161.             \def\ende{gleich}
  162.          \fi
  163.        \fi
  164.        \def\bedingung{Kontakt}
  165.        \ifx\serienbriefuebergabe\bedingung%
  166.          \ifx\zwparameter\kontakt%
  167.             \def\ende{gleich}
  168.          \fi
  169.        \fi
  170.        \def\test{gleich}
  171.        \ifx\ende\test
  172.          \def\test{n}%
  173.          \ifx\geschlecht\test%
  174.            \def\@uebergabeletter{%
  175.              \firma\\
  176.              \ifx\abteilung\empty%
  177.                \\
  178.              \else
  179.                Abteilung \abteilung\\
  180.              \fi
  181.              \strasse\\
  182.              \ort
  183.            }
  184.          \fi
  185.          \def\test{w}%
  186.          \ifx\geschlecht\test%
  187.            \ifx\firma\empty%
  188.              \def\@uebergabeletter{%
  189.                Frau\\
  190.                \vorname\space\nachname\\
  191.                \strasse\\
  192.                \ort
  193.              }
  194.            \else
  195.              \def\@uebergabeletter{%
  196.                \firma\\
  197.                \ifx\abteilung\empty%
  198.                \else
  199.                  Abteilung \abteilung\\
  200.                \fi
  201.                \ifx\nachname\empty
  202.                  \ \\
  203.                \else
  204.                  z.H. Frau \nachname\\
  205.                \fi
  206.                \strasse\\
  207.                \ort
  208.              }
  209.            \fi
  210.          \fi
  211.          \def\test{m}%
  212.          \ifx\geschlecht\test%
  213.            \ifx\firma\empty
  214.              \def\@uebergabeletter{%
  215.                Herr\\
  216.                \vorname\space\nachname\\
  217.                \strasse\\
  218.                \ort
  219.              }
  220.            \else 
  221.              \def\@uebergabeletter{%
  222.                \firma\\
  223.                \ifx\abteilung\empty%
  224.                \else
  225.                  Abteilung \abteilung\\
  226.                \fi
  227.                \ifx\nachname\empty
  228.                  \ \\
  229.                \else
  230.                  z.H. Herr \nachname\\
  231.                \fi
  232.                \strasse\\
  233.                \ort
  234.              }
  235.            \fi
  236.          \fi   
  237.          \typeout{}
  238.          \typeout{Anschrift gefunden:}
  239.           \if\firma\empty
  240.          \else
  241.            \typeout{\firma}
  242.          \fi
  243.          \if\abteilung\empty
  244.          \else
  245.            \typeout{Abteilung\space\abteilung}
  246.          \fi  
  247.          \typeout{\vorname\space\nachname}
  248.          \typeout{\strasse}
  249.          \typeout{\ort}
  250.          \typeout{}
  251.          \begin{letter}{\@uebergabeletter}
  252.            \def\test{herzlich}
  253.            \ifx\test\kontakt
  254.              \def\test{m}
  255.              \ifx\test\geschlecht 
  256.                \def\@uebergabe{
  257.                  Lieber \cosename,
  258.                }
  259.              \fi
  260.              \def\test{w}
  261.              \ifx\test\geschlecht 
  262.                \def\@uebergabe{
  263.                  Liebe \cosename,
  264.                  \fi
  265.                }
  266.              \fi
  267.              \def\test{n}
  268.              \ifx\test\geschlecht 
  269.                \def\@uebergabe{
  270.                  Liebe Damen und Herren,
  271.                }
  272.              \fi
  273.            \fi
  274.            \def\test{formal}
  275.            \ifx\test\kontakt
  276.              \def\test{m}
  277.              \ifx\test\geschlecht 
  278.                \def\@uebergabe{
  279.                  Sehr geehrter \nachname,
  280.                }
  281.              \fi
  282.              \def\test{w}
  283.              \ifx\test\geschlecht 
  284.                \def\@uebergabe{
  285.                  Sehr geehrte Frau \nachname,
  286.                }
  287.              \fi
  288.              \def\test{n}
  289.              \ifx\test\geschlecht 
  290.                \def\@uebergabe{
  291.                  Sehr geehrte Damen und Herren,
  292.                }
  293.              \fi
  294.            \fi
  295.            \opening{\@uebergabe}
  296.            \serientext
  297.            \ifx\greatings\empty
  298.              \def\test{herzlich}
  299.              \ifx\test\kontakt
  300.                \closing{Mit herzlichen Grüßen}
  301.              \fi
  302.              \def\test{formal}
  303.              \ifx\test\kontakt
  304.                \closing{Mit freundlichen Grüßen}
  305.              \fi
  306.            \else
  307.              \closing{\greatings}
  308.            \fi
  309.          \end{letter}
  310.          \def\ende{}
  311.        \fi
  312.      \fi
  313.      \ifeof7
  314.        \def\ende{eof}
  315.      \fi
  316.      \ifx\ende\empty
  317.    \repeat
  318.    \closein7
  319. }
  320. \endinput